9. objektorientierte programmierung
9.1 objekt vereinbaren
Obwohl in Javascript durchgehend mit objekten gearbeitet wird, ist im vergleich mit PHP oder modernen programmiersprachen die objektorientierte programmierung recht schlicht realisiert. Wie schon unter nr. 1.2 ausgeführt wurde, geht es bei den begriffen etwas durcheinander: es gibt keine klasse, mit der üblicherweise die eigenschaften und methoden eines objekts definiert oder beschrieben werden, es gibt nur eine funktion, mit der eigenschaften und ggf. methoden vereinbart werden und die auch dazu dient, objekte, also instanzen mit dem von der funktion definierten typ zu erzeugen. Oft wird die funktion auch als konstruktor-funktion bezeichnet
konstruktor-funktion
function klasse ([ param [ = default ]
, . . . ] )
{
this.eigenschaft = param
| wert; einer eigenschaft einen wert zuweisen
this.methode = methfunk;
eine methode vereinbaren
[ return erg; ]
}
klasse | name der funktion; es gibt bei Javascript keine klasse, aber man tut sich leichter, wenn man so tut als ob und den funktionsnamen wie eine klassebezeichnung betrachtet. |
param | vereinbarung eines parameters, für den beim aufruf ein wert übergeben wird |
default | wert, wenn für den parameter nichts übergeben wird |
eigenschaft | eigenschaft des objekts; man kann einen parameter, eine in der funktion vereinbarte variable oder direkt einen wert zuweisen. Oft wird einfach 0 zugewiesen. Man kann beliebig viele eigenschaften vereinbaren. Eine eigenschaft entspricht dem, was man sonst als variable bezeichnet. |
methode | name einer methode; man kann keine oder beliebig viele methoden vereinbaren |
methfunk | name einer funktion methoden-funktion), die der methode zugewiesen wird; die funktion wird ohne () angegeben. Man erleichtert sich den umgang mit den methoden des objekts, wenn man für die methode und die methoden-funktion die gleiche bezeichnung wählt. |
erg | rückgabewert der funktion; in einem konstruktor eher unüblich |
methode
Für eine methode ist eine funktion notwendig; die funktion kann beliebige
anweisungen enthalten, wichtig sind anweisungen, mit denen eigenschaften
des objekts gelesen oder geschrieben werden.
function methfunk ( [ param
[ = default ] , . . . ] )
{
var wert = this.
eigenschaft;
this.eigenschaft =
irgendetwas;
var ferg = this.mname
( [ wert, … ] );
}
methfunk | name der funktion, der in der konstruktor- funktion vereinbart wurde, also nicht der vereinbarte name der methode. Man erleichtert sich das leben, wenn man für beides den gleichen namen verwendet. |
eigenschaft | eigenschaft (variable), die in der konstruktor-funktion vereinbart wurde |
mname | aufruf einer methode, die in der konstruktor- funktion vereinbart wurde; es ist der name der methode, nicht der name der methoden-funktion anzugeben. |
objekt erzeugen
Durch den aufruf der konstruktor-funktion wird eine instanz, d.h. ein
objekt mit den in dieser funktion definierten eigenschaften und methoden
erzeugt. Man kann beliebig viele instanzen anlegen.
var instanz new klasse( [ param , . . . ] );
instanz | name der instanz bzw. des objekts |
klasse | name der konstruktor-funktion. |
param | parameter, für den beim anlegen der instanz werte übergeben werden. |
verwendung einer methode
Eine methode kann wie jede andere funktion verwendet werden, allerdings kann
man eine methode immer nur für eine vorhandene instanz des objekts
aufrufen.
[ erg ] = instanz.methode( [ par, . . . ] );
achtung
Eine methode wird mit dem namen der methode und nicht mit dem namen der
methoden-funktion aufgerufen. Das ist der grund, weshalb man für beides die
gleiche bezeichnung wählen sollte.
zugriff zu eigenschaften
Die eigenschaften eines objekts sind global, daher kann man darauf überall
zugreifen, aber nur auf dem weg über eine vorhandene instanz.
var wert = instanz.eigenschaft; | lesen einer eigenschaft |
instanz.eigenschaft = irgendetwas; | schreiben einer eigenschaft |
beispiel 9a
objekt-typ vereinbaren
Es wird die konstruktor-funktion PERS mit einigen eigenschaften und
den beiden methoden EIN und AUS vereinbart. Für den konstruktor
PERS sind zwei parameter vorgesehen, es müssen daher zwei argumente
übergeben werden, es können aber auch mehr sein, weil im konstruktor die
zahl der übergebenen werte geprüft und dann entsprechend verfahren wird
methoden
Die methode EIN (funktionsname eingabe) erwartet zwei
argumente, die in eigenschafen des objekts geschrieben werden. Die methode
AUS (funktionsname AUS) zeigt eigenschaften des objekts an.
Es werden drei instanzen von PERS erzeugt, deren eigenschaften dann mit der methode EIN mit werten versorgt und dann mit der methode AUS angezeigt werden. Zuletzt wird die eigenschaft name der instanz fall3 geändert und die eigenschaften der instanz erneut angezeigt. Die änderung erfolgt nicht mit hilfe einer methode, sondern durch einen direkten zugriff auf die eigenschaft.
impressum
Für den inhalt der homepage hartard-bernhard.de
ist im sinne des pressegesetzes verantwortlich:
Bernhard Hartard
Gerhart-Hauptmann-Ring 18
81737 München
089 / 670 39 90
familie.hartard@t-online.de
salvatorische erklärung
Die seiten meiner homepage enthalten links
zu anderen seiten im Internet, auf deren gestaltung und inhalt ich
keinen einfluss habe. Ich übernehme keine gewähr für den inhalt der
verlinkten seiten, rechtsverstöße waren für mich zum zeitpunkt der
verlinkung auf diesen seiten nicht erkennbar, eine ständige inhaltliche
kontrolle der verlinkten seiten ist mir weder möglich noch zumutbar.
Aus rechtlichen gründen distanziere ich mich ausdrücklich vom inhalt
der verlinkten seiten und mache mir deren inhalt nicht zu eigen.
Diese erklärung gilt für alle auf meinen seiten angezeigten links.
CLOSE anzeige schließen
start
Damit startet die homepage neu, d.h. der Steinbeisser treibt wieder sein unwesen.
anfang
Hier beginnen die informationen dieser homepage
zur person
Hier findet man informationen zur person des verfassers dieser homepage, wer er ist, woher er kommt, was er gelernt hat und was er im verlauf seines lebens so getrieben hat.
spiele
Hier finden man einige spiele, aber keine wüsten ballerspiele, sondern einige echte knobeleien (hirn-jogging), zwei gesellschaftsspiele (Mensch ärgere Dich nicht, Kniffel) und das spiel aller frechen schüler: schiffe versenken.
galerien
Ein wenig heimatliebe muss erlaubt sein und deshalb findet man hier einige bildergalerien von Speyer und von seinem Dom.
backbuch
Das ist eine sammlung von backrezepten, aus verschiedenen quellen zusammengetragen und fast alle mit mehr oder weniger erfolg ausprobiert. Da findet man in den endlosen weiten des Internet natürlich mehr und besseres.
stammbaum
Das gehört eigentlich in den privaten bereich dieser homepage, denn hier wird der stammbaum des verfassers der homepage gezeigt. Weil aber beim testen der anwendung auch der stammbaum der Wittelsbacher entstanden ist, wurde beides hier veröffentlicht. Vielleicht interessiert es jemand.
exit
Hier kann man Google oder eine beliebige seite im Internet aufrufen oder diese homepage verlassen.
kontakt
Hier kann man dem verfasser und eigentümer der homepage eine email schreiben.
privat
Hier kommt man in den privaten bereich der homepage, besser gesagt, man kommt da nicht hinein, denn dieser bereich ist geschützt und nur dem eigentümer der homepage zugänglich.
doku
Hier sind die programmiertechniken dokumentiert, mit deren hilfe die homepage gebastelt wurde. Genauer gesagt man findet hier kurz gefasste bechreibungen von HTML, CSS, MySQL und Javascript. Das findet man im Internet natürlich viel ausführlicher aber für einen ersten einstieg in die seltsame welt der programmierung sind diese beschreibungen durchaus brauchbar.